#include <stdio.h>
#include <stdlib.h>
#include <gmp.h>

int main(int argc, char *argv[])
{
	if(argc != 2)
	{
		printf("Erro\n");
		return(-1);
	}
	FILE *exit,*pi;
	/* corresponde ao arquivo que foi gerado por algum dos algoritmos */	
	exit = fopen(argv[1],"r");
	/* corresponde ao arquivo que foi contem o valor do pi com precisao de 10milhoes de digitos */	
	pi = fopen("pi.txt","r");
	
	// variavel que corresponde ao numero de casas precisao do pi
	mpz_t casa;
	mpz_init(casa);
		
	char c1,c2;
	
	c1 = getc(exit);
	c2 = getc(pi);

	int i=0;
	
	/* laco compara os 2 arquivos ate algum caractere nao ser igual nos 2*/
	while(c1 != EOF && c2 != EOF)
	{	
		//se os caracteres do arquivo sao iguais incrementa o valor de casa.
		if(c1==c2)
		{
			mpz_add_ui(casa,casa,1);
		}
		else break;
		
		c1 = getc(exit);
		c2 = getc(pi);

	}
	fclose(exit);
	fclose(pi);

	/* tira 2 da precisao devido aos 2 primeiros acertos serem correspondentes ao 0.  ( 0.314...) */
	mpz_sub_ui(casa,casa,2);

	gmp_printf (" Precisao de %Zd de digitos\n",casa);

	return 0;

}
